package com.club.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.club.entity.ClubMember;

import java.util.List;

/**
 * 社团成员服务接口
 */
public interface ClubMemberService extends IService<ClubMember> {
    
    /**
     * 添加社团成员
     * @param clubMember 成员信息
     * @return 是否添加成功
     */
    boolean addMember(ClubMember clubMember);
    
    /**
     * 移除社团成员
     * @param clubId 社团ID
     * @param userId 用户ID
     * @return 是否移除成功
     */
    boolean removeMember(Long clubId, Long userId);
    
    /**
     * 更新成员角色
     * @param clubId 社团ID
     * @param userId 用户ID
     * @param role 角色
     * @return 是否更新成功
     */
    boolean updateMemberRole(Long clubId, Long userId, Integer role);
    
    /**
     * 根据社团ID查询成员列表
     * @param clubId 社团ID
     * @return 成员列表
     */
    List<ClubMember> getMembersByClubId(Long clubId);
    
    /**
     * 查询用户在指定社团的角色
     * @param clubId 社团ID
     * @param userId 用户ID
     * @return 成员信息
     */
    ClubMember getMemberByClubAndUser(Long clubId, Long userId);
    
    /**
     * 检查用户是否是社团成员
     * @param clubId 社团ID
     * @param userId 用户ID
     * @return 是否是成员
     */
    boolean isMember(Long clubId, Long userId);
    
    /**
     * 检查用户是否是社团管理员
     * @param clubId 社团ID
     * @param userId 用户ID
     * @return 是否是管理员
     */
    boolean isAdmin(Long clubId, Long userId);
}